{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "28a67a83",
   "metadata": {
    "lines_to_next_cell": 0
   },
   "source": [
    "#  28\\.  层次聚类应用及聚类树绘制  # \n",
    "\n",
    "##  28.1.  介绍  # \n",
    "\n",
    "本次挑战将针对小麦种子数据集进行层次聚类，并绘制层次聚类二叉树图像。 \n",
    "\n",
    "##  28.2.  知识点  # \n",
    "\n",
    "  * 层次聚类 \n",
    "\n",
    "  * 修剪层次聚类二叉树 \n",
    "\n",
    "##  28.3.  数据集介绍  # \n",
    "\n",
    "本次挑战将用的小麦种子数据集，该数据集由若干小麦种子的几何参数组成，共包含有 7 个维度。这些维度有：种子面积、种子周长、种子致密度、核仁长度、核仁宽度、种子不对称系数、核沟长度。 \n",
    "\n",
    "你可以加载预览该数据集： "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "ef1eb864",
   "metadata": {
    "lines_to_next_cell": 0
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "--2025-05-06 10:15:49--  https://cdn.aibydoing.com/aibydoing/files/challenge-8-seeds.csv\n",
      "Resolving cdn.aibydoing.com (cdn.aibydoing.com)... 104.21.57.89, 172.67.162.75\n",
      "Connecting to cdn.aibydoing.com (cdn.aibydoing.com)|104.21.57.89|:443... connected.\n",
      "HTTP request sent, awaiting response... 200 OK\n",
      "Length: 9098 (8.9K) [text/csv]\n",
      "Saving to: 'challenge-8-seeds.csv'\n",
      "\n",
      "     0K ........                                              100% 7.27M=0.001s\n",
      "\n",
      "2025-05-06 10:15:51 (7.27 MB/s) - 'challenge-8-seeds.csv' saved [9098/9098]\n",
      "\n"
     ]
    }
   ],
   "source": [
    "!wget -nc https://cdn.aibydoing.com/aibydoing/files/challenge-8-seeds.csv"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "15ee3c05",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>f1</th>\n",
       "      <th>f2</th>\n",
       "      <th>f3</th>\n",
       "      <th>f4</th>\n",
       "      <th>f5</th>\n",
       "      <th>f6</th>\n",
       "      <th>f7</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>15.26</td>\n",
       "      <td>14.84</td>\n",
       "      <td>0.8710</td>\n",
       "      <td>5.763</td>\n",
       "      <td>3.312</td>\n",
       "      <td>2.221</td>\n",
       "      <td>5.220</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>14.88</td>\n",
       "      <td>14.57</td>\n",
       "      <td>0.8811</td>\n",
       "      <td>5.554</td>\n",
       "      <td>3.333</td>\n",
       "      <td>1.018</td>\n",
       "      <td>4.956</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>14.29</td>\n",
       "      <td>14.09</td>\n",
       "      <td>0.9050</td>\n",
       "      <td>5.291</td>\n",
       "      <td>3.337</td>\n",
       "      <td>2.699</td>\n",
       "      <td>4.825</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>13.84</td>\n",
       "      <td>13.94</td>\n",
       "      <td>0.8955</td>\n",
       "      <td>5.324</td>\n",
       "      <td>3.379</td>\n",
       "      <td>2.259</td>\n",
       "      <td>4.805</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>16.14</td>\n",
       "      <td>14.99</td>\n",
       "      <td>0.9034</td>\n",
       "      <td>5.658</td>\n",
       "      <td>3.562</td>\n",
       "      <td>1.355</td>\n",
       "      <td>5.175</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      f1     f2      f3     f4     f5     f6     f7\n",
       "0  15.26  14.84  0.8710  5.763  3.312  2.221  5.220\n",
       "1  14.88  14.57  0.8811  5.554  3.333  1.018  4.956\n",
       "2  14.29  14.09  0.9050  5.291  3.337  2.699  4.825\n",
       "3  13.84  13.94  0.8955  5.324  3.379  2.259  4.805\n",
       "4  16.14  14.99  0.9034  5.658  3.562  1.355  5.175"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "\n",
    "df = pd.read_csv(\"challenge-8-seeds.csv\")\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a8068653",
   "metadata": {
    "lines_to_next_cell": 0
   },
   "source": [
    "可以看到，数据集从 f1-f7 代表 7 种特征。下面，我就要通过层次聚类方法完成对该种子数据集的聚类，从而估计出数据集到底采集了几种类别的小麦种子。 \n",
    "\n",
    "##  28.4.  层次聚类  # \n",
    "\n",
    "前面的实验中，我们学习了如何实现一个自底向上的层次聚类算法，并了解通过 scikit-learn 完成层次聚类。这次的挑战中，我们将尝试通过 SciPy 完成，SciPy 作为知名的科学计算模块也同样提供了层次聚类的方法。 \n",
    "\n",
    "Exercise 28.1 \n",
    "\n",
    "挑战：使用 SciPy 中的 Agglomerative 聚类方法完成小麦种子层次聚类。 \n",
    "\n",
    "规定：使用 ` ward  ` 离差平方和法度量相似度，距离计算使用欧式距离。 \n",
    "\n",
    "提示：SciPy 中的 Agglomerative 聚类方法类为 ` scipy.cluster.hierarchy.linkage()  ` 。 [ 阅读官方文档 ](https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.linkage.html#scipy.cluster.hierarchy.linkage)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e78438bc",
   "metadata": {},
   "outputs": [],
   "source": [
    "from scipy.cluster import hierarchy\n",
    "\n",
    "## 代码开始 ### (≈ 1 行代码)\n",
    "Z = None\n",
    "## 代码结束 ###"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "664675d2",
   "metadata": {
    "lines_to_next_cell": 0
   },
   "source": [
    "参考答案  Exercise 28.1 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "d9949cbb",
   "metadata": {},
   "outputs": [],
   "source": [
    "from scipy.cluster import hierarchy\n",
    "\n",
    "### 代码开始 ### (≈ 1 行代码)\n",
    "Z = hierarchy.linkage(df, method ='ward', metric='euclidean')\n",
    "### 代码结束 ###"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d313dbe0",
   "metadata": {
    "lines_to_next_cell": 0
   },
   "source": [
    "运行测试 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "3e60232c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1.72000000e+02, 2.06000000e+02, 1.17378192e-01, 2.00000000e+00],\n",
       "       [1.48000000e+02, 1.98000000e+02, 1.33858134e-01, 2.00000000e+00],\n",
       "       [1.22000000e+02, 1.33000000e+02, 1.35824740e-01, 2.00000000e+00],\n",
       "       [7.00000000e+00, 2.80000000e+01, 1.79010642e-01, 2.00000000e+00],\n",
       "       [1.37000000e+02, 1.38000000e+02, 1.91444744e-01, 2.00000000e+00]])"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Z[:5]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bfa17c67",
   "metadata": {
    "lines_to_next_cell": 0
   },
   "source": [
    "你会发现，SciPy 中的 linkage 方法会返回一个 Nx4 的矩阵（上面的期望输出为前 5 行）。该矩阵其实包含了每一步合并类别的信息，以第一行举例： \n",
    "\n",
    "` [1.72000000e+02,  2.06000000e+02,  1.17378192e-01,  2.00000000e+00]  ` 表示 172 类别和 206 类别被合并，当前距离为 ` 1.17378192e-01  ` 属于全集合最短距离，合并后类别中包含有 2 个数据样本。 \n",
    "\n",
    "也就是说 SciPy 把整个层次聚类的过程都呈现出来了，这一点对于理解层次聚类是非常有帮助的。除此之外，SciPy 还集成了一个绘制层次聚类二叉树的方法 ` dendrogram  ` 。接下来，就尝试使用它来绘制出上面聚类的层次树。 \n",
    "\n",
    "Exercise 28.2 \n",
    "\n",
    "挑战：使用 SciPy 中的 dendrogram 方法绘制小麦种子层次聚类二叉树。 \n",
    "\n",
    "提示：SciPy 中绘制层次聚类二叉树的方法为 ` scipy.cluster.hierarchy.dendrogram()  ` 。 [ 阅读官方文档 ](https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.dendrogram.html)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ace355cd",
   "metadata": {},
   "outputs": [],
   "source": [
    "from matplotlib import pyplot as plt\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "plt.figure(figsize=(15, 8))\n",
    "## 代码开始 ### (≈ 1 行代码)\n",
    "\n",
    "## 代码结束 ###\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "11979f27",
   "metadata": {
    "lines_to_next_cell": 0
   },
   "source": [
    "参考答案  Exercise 28.2 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "56113301",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABLoAAAKTCAYAAAAe62GkAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAWY1JREFUeJzt3Qu4JUV9IPCagRkY5CUoIALGrBpMXJTgA1aTECQZSZagjMFXBJVgNIgK66ps1EjUxfUF4oKvIGAiEthVIiokBjMYVyBCYMWYZcUXY5CHIu/HDHL3+7fpu+cequ89jz6vur/f992Ze8/t26equqq6+t/VdVbMzc3NJQAAAACYcSsnnQAAAAAAaINAFwAAAABFEOgCAAAAoAgCXQAAAAAUQaALAAAAgCIIdAEAAABQBIEuAAAAAIog0AUAAABAETZPU+bBBx9MN9xwQ9pmm23SihUrJp0cAAAAACZobm4u3XnnnWnXXXdNK1eunK1AVwS5dt9990knAwAAAIApsmHDhrTbbrvNVqArZnLVid92220nnRwAAAAAJuiOO+6oJkXVMaOZCnTVjytGkEugCwAAAIDQyxJXFqMHAAAAoAgCXQAAAAAUQaALAAAAgCIIdAEAAABQBIEuAAAAAIog0AUAAABAEQS6AAAAACiCQBcAAAAARRDoAgAAAKAIAl0AAAAAFEGgCwAAAIAiCHQBAAAAUASBLgAAAACKINAFAAAAQBEEugAAAAAogkAXAAAAAEUQ6AIAAACgCAJdAAAAABRBoAsAAACAIgh0AQAAAFAEgS4AAAAAiiDQBQAAAEARBLoAAAAAKIJAFwAAAABF2HzSCYDFzM3NpXs3/WzSyQAARmjNqs3SihUrJp0MAKAAAl1MdZDr+R+5NF35g59OOikAwAg99TEPT+e9aj/BLgBgaB5dZGrFTC5BLgAo3xU/+KkZ3ABAK8zoYiZc8ZYD01arN5t0MgCAFt2z8Wfpqe/8u0knAwAoiEAXMyGCXFutVl0BAACAZh5dBAAAAKAIAl0AAAAAFEGgCwAAAIAiCHQBAAAAUASBLgAAAACKINAFAAAAQBEEugAAAAAogkAXAAAAAEUQ6AIAAACgCAJdAAAAABRBoAsAAACAIgh0AQAAAFAEgS4AAAAAiiDQBQAAAEARBLoAAAAAKIJAFwAAAABFEOgCAAAAoAgCXQAAAAAUQaALAAAAgCIIdAEAAABQBIEuAAAAAIog0AUAAABAEQS6AAAAACiCQBcAAAAARRDoAgAAAKAIAl0AAAAAFEGgCwAAAIAiCHQBAAAAUASBLgAAAACKINAFAAAAQBEEugAAAAAogkAXAAAAAEUQ6AIAAACgCAJdAAAAABRBoAsAAACAIgh0AQAAAFAEgS4AAAAAiiDQBQAAAEARBLoAAAAAKIJAFwAAAABFEOgCAAAAoAgCXQAAAAAUQaALAAAAgCIIdAEAAABQBIEuAAAAAIog0AUAAABAEQS6AAAAACiCQBcAAAAARRDoAgAAAKAIAl0AAAAAFEGgCwAAAIAiCHQBAAAAUASBLgAAAACKINAFAAAAQBEEugAAAAAogkAXAAAAAEUQ6AIAAACgCAJdAAAAABRBoAsAAACAIgh0AQAAAFAEgS4AAAAAiiDQBQAAAEARBLoAAAAAKIJAFwAAAABFEOgCAAAAYPkFut7+9renFStWLPjac889539/3333paOPPjrtuOOOaeutt07r1q1LN9100yjSDQAAAADDzej6lV/5lfSjH/1o/uurX/3q/O+OPfbYdMEFF6TzzjsvXXLJJemGG25Ihx56aL9vAQAAAAB927zvP9h887TLLrs85PXbb789nX766enss89OBxxwQPXaGWeckZ74xCemyy67LO277779pw4AAAAARjWj69vf/nbadddd0y/+4i+ml7zkJen666+vXr/yyivTpk2b0oEHHji/bTzWuMcee6RLL720cX/3339/uuOOOxZ8AQAAAMBIA13PeMYz0plnnpkuuuii9OEPfzh973vfS7/2a7+W7rzzznTjjTem1atXp+23337B3+y8887V75qceOKJabvttpv/2n333fvOBAAAAAD09ejiQQcdNP/9XnvtVQW+HvOYx6Rzzz03rVmzZqAEHH/88em4446b/zlmdAl2AQAAADDyRxc7xeytJzzhCem6666r1u3auHFjuu222xZsE5+6mFvTq7bFFlukbbfddsEXAAAAAIw10HXXXXel73znO+lRj3pU2meffdKqVavSxRdfPP/7a6+9tlrDa7/99hvmbQAAAACg3UcX3/CGN6SDDz64elzxhhtuSH/6p3+aNttss/SiF72oWl/ryCOPrB5D3GGHHaqZWcccc0wV5PKJiwAAAABMVaDrhz/8YRXU+slPfpIe+chHpmc961npsssuq74PJ510Ulq5cmVat25d9WmKa9euTaeddtqo0g4AAAAAgwW6zjnnnEV/v+WWW6ZTTz21+gIAAACAmVmjCwAAAACmhUAXAAAAAEUQ6AIAAACgCAJdAAAAABRBoAsAAACAIgh0AQAAAFAEgS4AAAAAiiDQBQAAAEARBLoAAAAAKIJAFwAAAABFEOgCAAAAoAgCXQAAAAAUQaALAAAAgCIIdAEAAABQBIEuAAAAAIog0AUAAABAEQS6AAAAACiCQBcAAAAARRDoAgAAAKAIAl0AAAAAFEGgCwAAAIAiCHQBAAAAUASBLgAAAACKINAFAAAAQBEEugAAAAAogkAXAAAAAEUQ6AIAAACgCAJdAAAAABRBoAsAAACAIgh0AQAAAFAEgS4AAAAAiiDQBQAAAEARBLoAAAAAKIJAFwAAAABFEOgCAAAAoAgCXQAAAAAUQaALAAAAgCIIdAEAAABQBIEuAAAAAIog0AUAAABAEQS6AAAAACiCQBcAAAAARRDoAgAAAKAIAl0AAAAAFEGgCwAAAIAiCHQBAAAAUASBLgAAAACKINAFAAAAQBEEugAAAAAogkAXAAAAAEUQ6AIAAACgCAJdAAAAABRBoAsAAACAIgh0AQAAAFAEgS4AAAAAiiDQBQAAAEARBLoAAAAAKIJAFwAAAABFEOgCAAAAoAgCXQAAAAAUQaALAAAAgCIIdAEAAABQBIEuAAAAAIog0AUAAABAEQS6AAAAACiCQBcAAAAARRDoAgAAAKAIAl0AAAAAFEGgCwAAAIAiCHQBAAAAUASBLgAAAACKINAFAAAAQBEEugAAAAAogkAXAAAAAEUQ6AIAAACgCAJdAAAAABRBoAsAAACAIgh0AQAAAFAEgS4AAAAAiiDQBQAAAEARBLoAAAAAKIJAFwAAAABFEOgCAAAAoAgCXQAAAAAUQaALAAAAgCIIdAEAAABQBIEuAAAAAIog0AUAAABAEQS6AAAAACiCQBcAAAAARRDoAgAAAKAIAl0AAAAAFGGoQNe73/3utGLFivT6179+/rX77rsvHX300WnHHXdMW2+9dVq3bl266aab2kgrAAAAALQf6Pr617+ePvrRj6a99tprwevHHntsuuCCC9J5552XLrnkknTDDTekQw89dNC3AQAAAIDRBbruuuuu9JKXvCR9/OMfTw9/+MPnX7/99tvT6aefnj7wgQ+kAw44IO2zzz7pjDPOSF/72tfSZZddNshbAQAAAMDoAl3xaOLv/u7vpgMPPHDB61deeWXatGnTgtf33HPPtMcee6RLL700u6/7778/3XHHHQu+AAAAAKBfm/f7B+ecc076p3/6p+rRxW433nhjWr16ddp+++0XvL7zzjtXv8s58cQT0wknnNBvMgAAAABg8BldGzZsSK973evSpz71qbTlllumNhx//PHVI4/1V7wHAAAAAIw00BWPJt58883pV3/1V9Pmm29efcWC86ecckr1fczc2rhxY7rtttsW/F186uIuu+yS3ecWW2yRtt122wVfAAAAADDSRxef/exnp2uuuWbBay9/+curdbje9KY3pd133z2tWrUqXXzxxWndunXV76+99tp0/fXXp/3226/vxAEAAADASAJd22yzTXrSk5604LWHPexhaccdd5x//cgjj0zHHXdc2mGHHarZWcccc0wV5Np33337eSsAAAAAGO1i9Es56aST0sqVK6sZXfGJimvXrk2nnXZa228DAAAAAO0GutavX7/g51ik/tRTT62+AAAAAGAqF6MHAAAAgGkl0AUAAABAEQS6AAAAACiCQBcAAAAARRDoAgAAAKAIAl0AAAAAFEGgCwAAAIAiCHQBAAAAUASBLgAAAACKINAFAAAAQBEEugAAAAAogkAXAAAAAEUQ6AIAAACgCAJdAAAAABRBoAsAAACAIgh0AQAAAFAEgS4AAAAAiiDQBQAAAEARBLoAAAAAKIJAFwAAAABFEOgCAAAAoAgCXQAAAAAUQaALAAAAgCIIdAEAAABQBIEuAAAAAIog0AUAAABAEQS6AAAAACiCQBcAAAAARRDoAgAAAKAIAl0AAAAAFEGgCwAAAIAiCHQBAAAAUASBLgAAAACKINAFAAAAQBEEugAAAAAogkAXAAAAAEUQ6AIAAACgCAJdAAAAABRBoAsAAACAIgh0AQAAAFAEgS4AAAAAiiDQBQAAAEARBLoAAAAAKIJAFwAAAABFEOgCAAAAoAgCXQAAAAAUQaALAAAAgCIIdAEAAABQBIEuAAAAAIog0AUAAABAEQS6AAAAACiCQBcAAAAARRDoAgAAAKAIAl0AAAAAFEGgCwAAAIAiCHQBAAAAUASBLgAAAACKINAFAAAAQBEEugAAAAAogkAXAAAAAEUQ6AIAAACgCAJdAAAAABRBoAsAAACAIgh0AQAAAFAEgS4AAAAAiiDQBQAAAEARBLoAAAAAKIJAFwAAAABFEOgCAAAAoAgCXQAAAAAUQaALAAAAgCIIdAEAAABQBIEuAAAAAIog0AUAAABAEQS6AAAAACiCQBcAAAAARRDoAgAAAKAIAl0AAAAAFEGgCwAAAIAiCHQBAAAAUASBLgAAAACKINAFAAAAQBEEugAAAAAogkAXAAAAAEXYfNIJAACm19zcXLr3gXsnnQwKdc+mn3V8f29KKzabaHoo15rN16QVK1ZMOhkAjIFAFwDQGOQ6/MLD09W3XD3ppFCouQdXpZTeUX2//7m/kVas3DTpJFGovXfaO531nLMEuwCWAYEuACArZnIJcjFKEdja5olvnnQyWAauuvmqqk/batVWk04KACMm0AUALGn9YeurR38AZkkEt/Y/d/9JJwOAMRLoAgCWFEEuMyEAAJh2PnURAAAAgCIIdAEAAABQBIEuAAAAAJZfoOvDH/5w2muvvdK2225bfe23337pwgsvnP/9fffdl44++ui04447pq233jqtW7cu3XTTTaNINwAAAAAMHujabbfd0rvf/e505ZVXpiuuuCIdcMAB6ZBDDkn//M//XP3+2GOPTRdccEE677zz0iWXXJJuuOGGdOihh/bzFgAAAAAw+k9dPPjggxf8/K53vaua5XXZZZdVQbDTTz89nX322VUALJxxxhnpiU98YvX7fffdd7AUAgAAAMAo1+j62c9+ls4555x09913V48wxiyvTZs2pQMPPHB+mz333DPtscce6dJLL23cz/3335/uuOOOBV8AAAAAMPJA1zXXXFOtv7XFFlukV73qVemzn/1s+uVf/uV04403ptWrV6ftt99+wfY777xz9bsmJ554Ytpuu+3mv3bfffe+MwEAAAAAfQe6fumXfildffXV6fLLL0+vfvWr0xFHHJG+9a1vDZyA448/Pt1+++3zXxs2bBh4XwAAAAAsX32t0RVi1tbjHve46vt99tknff3rX08f/OAH0wte8IK0cePGdNttty2Y1RWfurjLLrs07i9mhsUXAAAAAExkja7agw8+WK2zFUGvVatWpYsvvnj+d9dee226/vrrqzW8AAAAAGBqZnTFY4YHHXRQtcD8nXfeWX3C4vr169Pf/M3fVOtrHXnkkem4445LO+ywQ9p2223T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gS4AJu6//bf/ll70ohels846K/3+7/9+euMb35j+5//8n+mQQw5Jv/Zrv5ae97znpa997Wt97/eLX/xi9fWFL3yh2kd83+3+++9f8PNtt91WfWJwOPvss9MLX/jC9JKXvCS9+MUvTp/+9Kd7et9//Md/fMhrnfsdRm7fbR6HUesuh4985CPp8MMPT+ecc076j//xP6YPf/jDaRY961nPSh//+MfT3XffPdDff+lLX0pHHXVUuvrqq6ufP/axj1X/f+UrX0nf/e530x/8wR+kww47rPp53P7iL/4i/f3f/33VNqOdNh2j7rY0DUbZXsZtGssXAKbR5mkG/Pmf/3l1kREXPf/6r/+adtttt3TooYemNWvWVIOv+Pm0005Lm2++efr1X//16nc77LBD+su//Mt01113VRcnO+64YzUIPeKII6qfH/awh1X7jg+dvOGGG9KjH/3o6uf4ftddd31IGv75n/85/cqv/Er1/Te/+c1qv/vuu2/187333ptN2z/8wz+kk08+Od13331Vet761remJzzhCfP7vOiii9JznvOcBe/Tue/Y5yc/+cl06623pkc84hHpP//n/5z+w3/4D9WF1+c+97m02WabVek/+OCDq7RdcMEF6WUve1mVl/jbdevWVRcQcXH4O7/zO1V5/O7v/m7aeuutH1Jmr371q6uLj+uuu65K41//9V9XaXvkIx/ZeCEUg/HY5vOf/3x67GMfm97znvdky6ypjOsLzvh9HOMY4P/X//pfH3KMYvB/4IEHphUrVixaTyJdb3rTm9JNN930kON/3nnnPaQcIs+d6uMR+8nlLXc8fvmXfzlbZk11Iv4+8hPH6aMf/Wh6+tOfnp785Cdn8xcXM/G3b3vb29LGjRvTa17zmvRLv/RL2bqdS1tcbJ177rnp6KOPTk95ylOqi6ZXvvKV2f1GOur07rnnnun3fu/3qjTk6lpc5OTKPdpo5Ou3fuu35n8Xfxv5ff7zn1+1hZe+9KVVWSy23+72FfXliiuuSM9+9rPT6aefnn7zN38zPf7xj8+mt6mu5OpalEn3fp/0pCdl6+r69eurC9h6v3/4h3+Y9t9//2z76q5XdTvIta9NmzY9JA3//t//+2y9rPPXfUwjrbvvvns68cQTq23iQjgCOrm+Mb523nnnatuoH6997WurOpzrG5vaQa3zOOXaXNTL3PGI/jB37L797W9XQaTY/u/+7u+qcvzyl79clVUEvd797ndXaYw+MLffqMurV6+ujtWdd95ZpXvVqlXpT//0T9MLXvCCql3ec8896cc//nH6T//pP6Uf/vCH1fufcMIJ6dhjj63KKfIcxzuCYg9/+MOrr5/85CdVAKYWZR91NfYVxzPqTJTP0572tKo8I01Rz77xjW9UbTuOV26/0dc1HeeoU3X69tprr+q1CDB07/tDH/pQttxzbSZez9W1qC+12Hcc82ij0cZy/tf/+l9V2qJuPfOZz3zI7yOAtcsuuzzk9WgHUU65cojj/Fd/9VdVkCt+96pXvar6m1ybifTl2niuzHo5p3WWey5vDzzwQFUHovwuvfTS6jhvueWW2Tw/8YlPTDvttFN6xStekbbffvv08pe/vEpLdz151KMela2vn/jEJ6oA0jvf+c6qL68DXtEuIsDxgQ98oNpvtINoy7k05Pq66J9y56RoH7m85fqZaO//+3//7+pcGl73utdV/+fa0qmnnto4rsqV8WLjsM5+Jtfmoixz9f3P/uzPsm0x+plc3f7Wt741/32cm//oj/6o6htzfXnuHBppyZ3zc+3g+9//frbPzu036m2ur6p1ny87xfGPc1VTnnPjhr333nvRfHSPW7vbXVN7aRrP5s4dcQ7KnSNy+YuxS27sm2sHkbbceCQ3dml6v8jbUmPfEH1+fS7vbou58U/8nxsT5a4jog3k9psr48hzd52KviN3zm8azzSNBaIud48nIk25MUYuz9F2ex1XRZvPXU/1c42TG3s0HfvcfuN45M4nubJsGv9G2rvzHGWSy1vTuDPXT/zgBz/I5jlXL6Psc31d0/VJ7joid46IfqLXNET/nts2+upce84dpxgr5PrRXLlHncv1P7l+P8aIuTaTaweRnlz55NL2/ve/P1tPcuVz0EEHZcuh6dopd+x+9rOfPSS9MbbIjZNzbaPpvJxr91F/cnWiHk90pusNb3hDts00jV16OTfPXKArLmpqkeGLL744ffWrX60qShTe9ddfXxVkDAq//vWvP2TwFYUfHV1U4jhgMRA788wzs4PQ6ES22WabqjKfcsopVSWIhtdZsJGGeD0qbRzcONixnzPOOKMq9GicubR96lOfqg56dFrHH398tV0MCOJvuwdfkefufUfjz13kXXLJJQ+58PrsZz+b/st/+S/Ve8VAKMos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aTyb68Oazu+5/DWNfXPtoGk8khu7NL1f03kxNy5qaou5cVVuTNR0HdG031wZ5+pU0zm/aZzclOfceKJpjJHLX+e4Kv5fbFyVK4d+r3Fy9arp2Of223Q+yZVlyNW3XJ6b8tZUPrlj2pTnXL3M9XVN1ydN1xG51/tJQ9O2Te05d5ya+tFcuef6uqZ+v6nN5NpBU/nk0tZUT3Ll01QOTf1E7tjl0ruxYZycaxtN1+5NbTxXFrl0NbWZpn6tqb72bG4K/eM//uOCn//v//2/c2efffbcYYcdVn294AUvmPv0pz9d/e7BBx+c++xnPzv37ne/e+5Tn/rU3D333DP31a9+de75z3/+3BOe8IS5Qw45ZO68886rtv2Hf/iHh7zXK17xivnvr7nmmrlHPepR1fcf+MAHFmx31llnzR100EHVfmtHHHFE9X+dtkhXZ9ouueSSuWOOOWbu29/+dvXz17/+9er/7373u3NHH3303Atf+ML5feX2/a1vfWvu/e9//9zNN99cvfb973+/+v/uu++e+4u/+Isqz3/5l39Z/fznf/7n83+7adOmueOOO676/l/+5V8W5GP9+vXZMgvvfe97q/83btxY/f+mN71pPr2dfvKTn8xdf/31c1/4wheq79/3vvfNffOb38yWWXj5y18+/1psV5dx7Utf+tLcW97ylsZjVKejdueddzamK+SOf64cat3HI/L2xS9+cUHeQu54vOc971lQZm9+85sXrRNXXnnl3Kmnnjr3ve99b+41r3nN3N///d835i/SGHWo9pnPfKaxbkfaovxvueWW+bSdf/75C/Z7yimnNO43yv95z3teVa/CySefvKCunXjiifN1rancu98vdzzjvZr2290GXvayl1X/v/Od75x78YtfPPfxj3987vd+7/fmjj/++Mb01uXfXZadde1P/uRPFuz3Yx/72Px+u+vqrrvuWn1/ww03zL3jHe+Y+6M/+qPq7+LnkKtXTe2grivRPkMc9840HHzwwVUaalHOUUc6+4ncMb3rrrvmTjrppLlXvepVc+9617vmbrzxxup3ne08yjja+Zlnnjn3yU9+cv7v431zxynk2nhTX9VUL3N1u+nY9SO338997nNza9eunXvmM585t27durkPfehDjX9/7rnnzv3hH/7h3FVXXVX9fMIJJ1T//+3f/u3ckUceOf961M8mr33ta+de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",
      "text/plain": [
       "<Figure size 1500x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "plt.figure(figsize=(15, 8))\n",
    "### 代码开始 ### (≈ 1 行代码)\n",
    "hierarchy.dendrogram(Z)\n",
    "### 代码结束 ###\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ccddac01",
   "metadata": {
    "lines_to_next_cell": 0
   },
   "source": [
    "期望输出 \n",
    "\n",
    "![image](https://cdn.aibydoing.com/aibydoing/images/document-uid214893labid6102timestamp1531806113660.png)\n",
    "\n",
    "层次聚类二叉树中，  $x$  轴代表数据点原类别，也就是样本序号，而  $y$  轴表示类别之间的距离。 \n",
    "\n",
    "特别地，图中的横线所在高度表明类别间合并时的距离。如果相邻两横线的间距越大，则说明前序类别在合并时的距离越远，也就表明可能并不属于一类不需要被合并。 \n",
    "\n",
    "上图中蓝色线所对应的  $y$  差值最大，即说明红色和绿色两个分支很有可能不属于一类。 \n",
    "\n",
    "##  28.5.  修剪层次聚类二叉树  # \n",
    "\n",
    "上面，我们使用 ` dendrogram()  ` 来绘制二叉树。你会发现当样本数量越多时，叶节点就越密集，最终导致通过二叉树辨识不同类别的可视性降低。 \n",
    "\n",
    "其实，你可以指定多个参数来修剪完整的二叉树结果，让其具备更好地观赏性。 \n",
    "\n",
    "Exercise 28.3 \n",
    "\n",
    "挑战：对小麦种子层次聚类二叉树进行修剪。 \n",
    "\n",
    "提示：修改参数 ` truncate_mode  ` , ` p  ` , ` show_leaf_counts  ` , ` show_contracted  ` 。 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8919ab68",
   "metadata": {},
   "outputs": [],
   "source": [
    "plt.figure(figsize=(15, 8))\n",
    "## 代码开始 ### (≈ 1 行代码)\n",
    "\n",
    "## 代码结束 ###\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c04aae9d",
   "metadata": {
    "lines_to_next_cell": 0
   },
   "source": [
    "参考答案  Exercise 28.3 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "500f1d19",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABLoAAAKTCAYAAAAe62GkAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAWY1JREFUeJzt3Qu4JUV9IPCagRkY5CUoIALGrBpMXJTgA1aTECQZSZagjMFXBJVgNIgK66ps1EjUxfUF4oKvIGAiEthVIiokBjMYVyBCYMWYZcUXY5CHIu/HDHL3+7fpu+cequ89jz6vur/f992Ze8/t26equqq6+t/VdVbMzc3NJQAAAACYcSsnnQAAAAAAaINAFwAAAABFEOgCAAAAoAgCXQAAAAAUQaALAAAAgCIIdAEAAABQBIEuAAAAAIog0AUAAABAETZPU+bBBx9MN9xwQ9pmm23SihUrJp0cAAAAACZobm4u3XnnnWnXXXdNK1eunK1AVwS5dt9990knAwAAAIApsmHDhrTbbrvNVqArZnLVid92220nnRwAAAAAJuiOO+6oJkXVMaOZCnTVjytGkEugCwAAAIDQyxJXFqMHAAAAoAgCXQAAAAAUQaALAAAAgCIIdAEAAABQBIEuAAAAAIog0AUAAABAEQS6AAAAACiCQBcAAAAARRDoAgAAAKAIAl0AAAAAFEGgCwAAAIAiCHQBAAAAUASBLgAAAACKINAFAAAAQBEEugAAAAAogkAXAAAAAEUQ6AIAAACgCAJdAAAAABRBoAsAAACAIgh0AQAAAFAEgS4AAAAAiiDQBQAAAEARBLoAAAAAKIJAFwAAAABF2HzSCYDFzM3NpXs3/WzSyQAARmjNqs3SihUrJp0MAKAAAl1MdZDr+R+5NF35g59OOikAwAg99TEPT+e9aj/BLgBgaB5dZGrFTC5BLgAo3xU/+KkZ3ABAK8zoYiZc8ZYD01arN5t0MgCAFt2z8Wfpqe/8u0knAwAoiEAXMyGCXFutVl0BAACAZh5dBAAAAKAIAl0AAAAAFEGgCwAAAIAiCHQBAAAAUASBLgAAAACKINAFAAAAQBEEugAAAAAogkAXAAAAAEUQ6AIAAACgCAJdAAAAABRBoAsAAACAIgh0AQAAAFAEgS4AAAAAiiDQBQAAAEARBLoAAAAAKIJAFwAAAABFEOgCAAAAoAgCXQAAAAAUQaALAAAAgCIIdAEAAABQBIEuAAAAAIog0AUAAABAEQS6AAAAACiCQBcAAAAARRDoAgAAAKAIAl0AAAAAFEGgCwAAAIAiCHQBAAAAUASBLgAAAACKINAFAAAAQBEEugAAAAAogkAXAAAAAEUQ6AIAAACgCAJdAAAAABRBoAsAAACAIgh0AQAAAFAEgS4AAAAAiiDQBQAAAEARBLoAAAAAKIJAFwAAAABFEOgCAAAAoAgCXQAAAAAUQaALAAAAgCIIdAEAAABQBIEuAAAAAIog0AUAAABAEQS6AAAAACiCQBcAAAAARRDoAgAAAKAIAl0AAAAAFEGgCwAAAIAiCHQBAAAAUASBLgAAAACKINAFAAAAQBEEugAAAAAogkAXAAAAAEUQ6AIAAACgCAJdAAAAABRBoAsAAACAIgh0AQAAAFAEgS4AAAAAiiDQBQAAAEARBLoAAAAAKIJAFwAAAABFEOgCAAAAYPkFut7+9renFStWLPjac889539/3333paOPPjrtuOOOaeutt07r1q1LN9100yjSDQAAAADDzej6lV/5lfSjH/1o/uurX/3q/O+OPfbYdMEFF6TzzjsvXXLJJemGG25Ihx56aL9vAQAAAAB927zvP9h887TLLrs85PXbb789nX766enss89OBxxwQPXaGWeckZ74xCemyy67LO277779pw4AAAAARjWj69vf/nbadddd0y/+4i+ml7zkJen666+vXr/yyivTpk2b0oEHHji/bTzWuMcee6RLL720cX/3339/uuOOOxZ8AQAAAMBIA13PeMYz0plnnpkuuuii9OEPfzh973vfS7/2a7+W7rzzznTjjTem1atXp+23337B3+y8887V75qceOKJabvttpv/2n333fvOBAAAAAD09ejiQQcdNP/9XnvtVQW+HvOYx6Rzzz03rVmzZqAEHH/88em4446b/zlmdAl2AQAAADDyRxc7xeytJzzhCem6666r1u3auHFjuu222xZsE5+6mFvTq7bFFlukbbfddsEXAAAAAIw10HXXXXel73znO+lRj3pU2meffdKqVavSxRdfPP/7a6+9tlrDa7/99hvmbQAAAACg3UcX3/CGN6SDDz64elzxhhtuSH/6p3+aNttss/SiF72oWl/ryCOPrB5D3GGHHaqZWcccc0wV5PKJiwAAAABMVaDrhz/8YRXU+slPfpIe+chHpmc961npsssuq74PJ510Ulq5cmVat25d9WmKa9euTaeddtqo0g4AAAAAgwW6zjnnnEV/v+WWW6ZTTz21+gIAAACAmVmjCwAAAACmhUAXAAAAAEUQ6AIAAACgCAJdAAAAABRBoAsAAACAIgh0AQAAAFAEgS4AAAAAiiDQBQAAAEARBLoAAAAAKIJAFwAAAABFEOgCAAAAoAgCXQAAAAAUQaALAAAAgCIIdAEAAABQBIEuAAAAAIog0AUAAABAEQS6AAAAACiCQBcAAAAARRDoAgAAAKAIAl0AAAAAFEGgCwAAAIAiCHQBAAAAUASBLgAAAACKINAFAAAAQBEEugAAAAAogkAXAAAAAEUQ6AIAAACgCAJdAAAAABRBoAsAAACAIgh0AQAAAFAEgS4AAAAAiiDQBQAAAEARBLoAAAAAKIJAFwAAAABFEOgCAAAAoAgCXQAAAAAUQaALAAAAgCIIdAEAAABQBIEuAAAAAIog0AUAAABAEQS6AAAAACiCQBcAAAAARRDoAgAAAKAIAl0AAAAAFEGgCwAAAIAiCHQBAAAAUASBLgAAAACKINAFAAAAQBEEugAAAAAogkAXAAAAAEUQ6AIAAACgCAJdAAAAABRBoAsAAACAIgh0AQAAAFAEgS4AAAAAiiDQBQAAAEARBLoAAAAAKIJAFwAAAABFEOgCAAAAoAgCXQAAAAAUQaALAAAAgCIIdAEAAABQBIEuAAAAAIog0AUAAABAEQS6AAAAACiCQBcAAAAARRDoAgAAAKAIAl0AAAAAFEGgCwAAAIAiCHQBAAAAUASBLgAAAACKINAFAAAAQBEEugAAAAAogkAXAAAAAEUQ6AIAAACgCAJdAAAAABRBoAsAAACAIgh0AQAAAFAEgS4AAAAAiiDQBQAAAEARBLoAAAAAKIJAFwAAAABFEOgCAAAAoAgCXQAAAAAUQaALAAAAgCIIdAEAAABQBIEuAAAAAIog0AUAAABAEQS6AAAAACiCQBcAAAAARRDoAgAAAKAIAl0AAAAAFGGoQNe73/3utGLFivT6179+/rX77rsvHX300WnHHXdMW2+9dVq3bl266aab2kgrAAAAALQf6Pr617+ePvrRj6a99tprwevHHntsuuCCC9J5552XLrnkknTDDTekQw89dNC3AQAAAIDRBbruuuuu9JKXvCR9/OMfTw9/+MPnX7/99tvT6aefnj7wgQ+kAw44IO2zzz7pjDPOSF/72tfSZZddNshbAQAAAMDoAl3xaOLv/u7vpgMPPHDB61deeWXatGnTgtf33HPPtMcee6RLL700u6/7778/3XHHHQu+AAAAAKBfm/f7B+ecc076p3/6p+rRxW433nhjWr16ddp+++0XvL7zzjtXv8s58cQT0wknnNBvMgAAAABg8BldGzZsSK973evSpz71qbTlllumNhx//PHVI4/1V7wHAAAAAIw00BWPJt58883pV3/1V9Pmm29efcWC86ecckr1fczc2rhxY7rtttsW/F186uIuu+yS3ecWW2yRtt122wVfAAAAADDSRxef/exnp2uuuWbBay9/+curdbje9KY3pd133z2tWrUqXXzxxWndunXV76+99tp0/fXXp/3226/vxAEAAADASAJd22yzTXrSk5604LWHPexhaccdd5x//cgjj0zHHXdc2mGHHarZWcccc0wV5Np33337eSsAAAAAGO1i9Es56aST0sqVK6sZXfGJimvXrk2nnXZa228DAAAAAO0GutavX7/g51ik/tRTT62+AAAAAGAqF6MHAAAAgGkl0AUAAABAEQS6AAAAACiCQBcAAAAARRDoAgAAAKAIAl0AAAAAFEGgCwAAAIAiCHQBAAAAUASBLgAAAACKINAFAAAAQBEEugAAAAAogkAXAAAAAEUQ6AIAAACgCAJdAAAAABRBoAsAAACAIgh0AQAAAFAEgS4AAAAAiiDQBQAAAEARBLoAAAAAKIJAFwAAAABFEOgCAAAAoAgCXQAAAAAUQaALAAAAgCIIdAEAAABQBIEuAAAAAIog0AUAAABAEQS6AAAAACiCQBcAAAAARRDoAgAAAKAIAl0AAAAAFEGgCwAAAIAiCHQBAAAAUASBLgAAAACKINAFAAAAQBEEugAAAAAogkAXAAAAAEUQ6AIAAACgCAJdAAAAABRBoAsAAACAIgh0AQAAAFAEgS4AAAAAiiDQBQAAAEARBLoAAAAAKIJAFwAAAABFEOgCAAAAoAgCXQAAAAAUQaALAAAAgCIIdAEAAABQBIEuAAAAAIog0AUAAABAEQS6AAAAACiCQBcAAAAARRDoAgAAAKAIAl0AAAAAFEGgCwAAAIAiCHQBAAAAUASBLgAAAACKINAFAAAAQBEEugAAAAAogkAXAAAAAEUQ6AIAAACgCAJdAAAAABRBoAsAAACAIgh0AQAAAFAEgS4AAAAAiiDQBQAAAEARBLoAAAAAKIJAFwAAAABFEOgCAAAAoAgCXQAAAAAUQaALAAAAgCIIdAEAAABQBIEuAAAAAIog0AUAAABAEQS6AAAAACiCQBcAAAAARRDoAgAAAKAIAl0AAAAAFEGgCwAAAIAiCHQBAAAAUASBLgAAAACKINAFAAAAQBEEugAAAAAogkAXAAAAAEXYfNIJAACm19zcXLr3gXsnnQwKdc+mn3V8f29KKzabaHoo15rN16QVK1ZMOhkAjIFAFwDQGOQ6/MLD09W3XD3ppFCouQdXpZTeUX2//7m/kVas3DTpJFGovXfaO531nLMEuwCWAYEuACArZnIJcjFKEdja5olvnnQyWAauuvmqqk/batVWk04KACMm0AUALGn9YeurR38AZkkEt/Y/d/9JJwOAMRLoAgCWFEEuMyEAAJh2PnURAAAAgCIIdAEAAABQBIEuAAAAAJZfoOvDH/5w2muvvdK2225bfe23337pwgsvnP/9fffdl44++ui04447pq233jqtW7cu3XTTTaNINwAAAAAMHujabbfd0rvf/e505ZVXpiuuuCIdcMAB6ZBDDkn//M//XP3+2GOPTRdccEE677zz0iWXXJJuuOGGdOihh/bzFgAAAAAw+k9dPPjggxf8/K53vaua5XXZZZdVQbDTTz89nX322VUALJxxxhnpiU98YvX7fffdd7AUAgAAAMAo1+j62c9+ls4555x09913V48wxiyvTZs2pQMPPHB+mz333DPtscce6dJLL23cz/3335/uuOOOBV8AAAAAMPJA1zXXXFOtv7XFFlukV73qVemzn/1s+uVf/uV04403ptWrV6ftt99+wfY777xz9bsmJ554Ytpuu+3mv3bfffe+MwEAAAAAfQe6fumXfildffXV6fLLL0+vfvWr0xFHHJG+9a1vDZyA448/Pt1+++3zXxs2bBh4XwAAAAAsX32t0RVi1tbjHve46vt99tknff3rX08f/OAH0wte8IK0cePGdNttty2Y1RWfurjLLrs07i9mhsUXAAAAAExkja7agw8+WK2zFUGvVatWpYsvvnj+d9dee226/vrrqzW8AAAAAGBqZnTFY4YHHXRQtcD8nXfeWX3C4vr169Pf/M3fVOtrHXnkkem4445LO+ywQ9p2223T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gS4AJu6//bf/ll70ohels846K/3+7/9+euMb35j+5//8n+mQQw5Jv/Zrv5ae97znpa997Wt97/eLX/xi9fWFL3yh2kd83+3+++9f8PNtt91WfWJwOPvss9MLX/jC9JKXvCS9+MUvTp/+9Kd7et9//Md/fMhrnfsdRm7fbR6HUesuh4985CPp8MMPT+ecc076j//xP6YPf/jDaRY961nPSh//+MfT3XffPdDff+lLX0pHHXVUuvrqq6ufP/axj1X/f+UrX0nf/e530x/8wR+kww47rPp53P7iL/4i/f3f/33VNqOdNh2j7rY0DUbZXsZtGssXAKbR5mkG/Pmf/3l1kREXPf/6r/+adtttt3TooYemNWvWVIOv+Pm0005Lm2++efr1X//16nc77LBD+su//Mt01113VRcnO+64YzUIPeKII6qfH/awh1X7jg+dvOGGG9KjH/3o6uf4ftddd31IGv75n/85/cqv/Er1/Te/+c1qv/vuu2/187333ptN2z/8wz+kk08+Od13331Vet761remJzzhCfP7vOiii9JznvOcBe/Tue/Y5yc/+cl06623pkc84hHpP//n/5z+w3/4D9WF1+c+97m02WabVek/+OCDq7RdcMEF6WUve1mVl/jbdevWVRcQcXH4O7/zO1V5/O7v/m7aeuutH1Jmr371q6uLj+uuu65K41//9V9XaXvkIx/ZeCEUg/HY5vOf/3x67GMfm97znvdky6ypjOsLzvh9HOMY4P/X//pfH3KMYvB/4IEHphUrVixaTyJdb3rTm9JNN930kON/3nnnPaQcIs+d6uMR+8nlLXc8fvmXfzlbZk11Iv4+8hPH6aMf/Wh6+tOfnp785Cdn8xcXM/G3b3vb29LGjRvTa17zmvRLv/RL2bqdS1tcbJ177rnp6KOPTk95ylOqi6ZXvvKV2f1GOur07rnnnun3fu/3qjTk6lpc5OTKPdpo5Ou3fuu35n8Xfxv5ff7zn1+1hZe+9KVVWSy23+72FfXliiuuSM9+9rPT6aefnn7zN38zPf7xj8+mt6mu5OpalEn3fp/0pCdl6+r69eurC9h6v3/4h3+Y9t9//2z76q5XdTvIta9NmzY9JA3//t//+2y9rPPXfUwjrbvvvns68cQTq23iQjgCOrm+Mb523nnnatuoH6997WurOpzrG5vaQa3zOOXaXNTL3PGI/jB37L797W9XQaTY/u/+7u+qcvzyl79clVUEvd797ndXaYw+MLffqMurV6+ujtWdd95ZpXvVqlXpT//0T9MLXvCCql3ec8896cc//nH6T//pP6Uf/vCH1fufcMIJ6dhjj63KKfIcxzuCYg9/+MOrr5/85CdVAKYWZR91NfYVxzPqTJTP0572tKo8I01Rz77xjW9UbTuOV26/0dc1HeeoU3X69tprr+q1CDB07/tDH/pQttxzbSZez9W1qC+12Hcc82ij0cZy/tf/+l9V2qJuPfOZz3zI7yOAtcsuuzzk9WgHUU65cojj/Fd/9VdVkCt+96pXvar6m1ybifTl2niuzHo5p3WWey5vDzzwQFUHovwuvfTS6jhvueWW2Tw/8YlPTDvttFN6xStekbbffvv08pe/vEpLdz151KMela2vn/jEJ6oA0jvf+c6qL68DXtEuIsDxgQ98oNpvtINoy7k05Pq66J9y56RoH7m85fqZaO//+3//7+pcGl73utdV/+fa0qmnnto4rsqV8WLjsM5+Jtfmoixz9f3P/uzPsm0x+plc3f7Wt741/32cm//oj/6o6htzfXnuHBppyZ3zc+3g+9//frbPzu036m2ur6p1ny87xfGPc1VTnnPjhr333nvRfHSPW7vbXVN7aRrP5s4dcQ7KnSNy+YuxS27sm2sHkbbceCQ3dml6v8jbUmPfEH1+fS7vbou58U/8nxsT5a4jog3k9psr48hzd52KviN3zm8azzSNBaIud48nIk25MUYuz9F2ex1XRZvPXU/1c42TG3s0HfvcfuN45M4nubJsGv9G2rvzHGWSy1vTuDPXT/zgBz/I5jlXL6Psc31d0/VJ7joid46IfqLXNET/nts2+upce84dpxgr5PrRXLlHncv1P7l+P8aIuTaTaweRnlz55NL2/ve/P1tPcuVz0EEHZcuh6dopd+x+9rOfPSS9MbbIjZNzbaPpvJxr91F/cnWiHk90pusNb3hDts00jV16OTfPXKArLmpqkeGLL744ffWrX60qShTe9ddfXxVkDAq//vWvP2TwFYUfHV1U4jhgMRA788wzs4PQ6ES22WabqjKfcsopVSWIhtdZsJGGeD0qbRzcONixnzPOOKMq9GicubR96lOfqg56dFrHH398tV0MCOJvuwdfkefufUfjz13kXXLJJQ+58PrsZz+b/st/+S/Ve8VAKMos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aTyb68Oazu+5/DWNfXPtoGk8khu7NL1f03kxNy5qaou5cVVuTNR0HdG031wZ5+pU0zm/aZzclOfceKJpjJHLX+e4Kv5fbFyVK4d+r3Fy9arp2Of223Q+yZVlyNW3XJ6b8tZUPrlj2pTnXL3M9XVN1ydN1xG51/tJQ9O2Te05d5ya+tFcuef6uqZ+v6nN5NpBU/nk0tZUT3Ll01QOTf1E7tjl0ruxYZycaxtN1+5NbTxXFrl0NbWZpn6tqb72bG4K/eM//uOCn//v//2/c2efffbcYYcdVn294AUvmPv0pz9d/e7BBx+c++xnPzv37ne/e+5Tn/rU3D333DP31a9+de75z3/+3BOe8IS5Qw45ZO68886rtv2Hf/iHh7zXK17xivnvr7nmmrlHPepR1fcf+MAHFmx31llnzR100EHVfmtHHHFE9X+dtkhXZ9ouueSSuWOOOWbu29/+dvXz17/+9er/7373u3NHH3303Atf+ML5feX2/a1vfWvu/e9//9zNN99cvfb973+/+v/uu++e+4u/+Isqz3/5l39Z/fznf/7n83+7adOmueOOO676/l/+5V8W5GP9+vXZMgvvfe97q/83btxY/f+mN71pPr2dfvKTn8xdf/31c1/4wheq79/3vvfNffOb38yWWXj5y18+/1psV5dx7Utf+tLcW97ylsZjVKejdueddzamK+SOf64cat3HI/L2xS9+cUHeQu54vOc971lQZm9+85sXrRNXXnnl3Kmnnjr3ve99b+41r3nN3N///d835i/SGHWo9pnPfKaxbkfaovxvueWW+bSdf/75C/Z7yimnNO43yv95z3teVa/CySefvKCunXjiifN1rancu98vdzzjvZr2290GXvayl1X/v/Od75x78YtfPPfxj3987vd+7/fmjj/++Mb01uXfXZadde1P/uRPFuz3Yx/72Px+u+vqrrvuWn1/ww03zL3jHe+Y+6M/+qPq7+LnkKtXTe2grivRPkMc9840HHzwwVUaalHOUUc6+4ncMb3rrrvmTjrppLlXvepVc+9617vmbrzxxup3ne08yjja+Zlnnjn3yU9+cv7v431zxynk2nhTX9VUL3N1u+nY9SO338997nNza9eunXvmM585t27durkPfehDjX9/7rnnzv3hH/7h3FVXXVX9fMIJJ1T//+3f/u3ckUceOf961M8mr33ta+de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",
      "text/plain": [
       "<Figure size 1500x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(15, 8))\n",
    "### 代码开始 ### (≈ 1 行代码)\n",
    "hierarchy.dendrogram(Z, truncate_mode='lastp', p=15, show_leaf_counts=True, show_contracted=True)\n",
    "### 代码结束 ###\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "21c1af10",
   "metadata": {},
   "source": [
    "期望输出 \n",
    "\n",
    "![image](https://cdn.aibydoing.com/aibydoing/images/document-uid214893labid6102timestamp1531806114000.png)\n",
    "\n",
    "此时的二叉树看起来就更美观了。那么，本次挑战中到底判定小麦种子大致为几类呢？下面通过层次聚类二叉树给出建议： \n",
    "\n",
    "[ ![https://cdn.aibydoing.com/aibydoing/images/document-uid214893labid6102timestamp1531806114224.png](https://cdn.aibydoing.com/aibydoing/images/document-uid214893labid6102timestamp1531806114224.png) ](https://cdn.aibydoing.com/aibydoing/images/document-uid214893labid6102timestamp1531806114224.png)\n",
    "\n",
    "所以，最终建议将小麦种子数据集划为 3 类，也就是其中包含 3 种不同品种的小麦籽粒。 "
   ]
  }
 ],
 "metadata": {
  "jupytext": {
   "cell_metadata_filter": "-all",
   "main_language": "python",
   "notebook_metadata_filter": "-all"
  },
  "kernelspec": {
   "display_name": ".venv",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
